Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Subsekcje w szablonach
Rudi1204
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 2
Dołączył: 11.03.2007

Ostrzeżenie: (0%)
-----


Witam w php siedzę jakiś czas, ale mimo to nie ogarniam do końca sprawy klas, a to do pisania silnika szablonów chyba jest podstawa no nie??

Mianowicie już jakiś czas temu znalazłem na stronie museum.webcity.pl artykuł jak stworzyć własny mechanizm szablonów. Całkiem niezły i przyjazny, ale na dłuższą metę jemu coś brakuje no właśnie "subsekcji". Zabrałem się za to ale patrząc na to ze kuleje z klas rozłożyłem na końcu ręce.

Na forum znalazłem takie coś
plik index.php
  1. <?php
  2. $tablica['{$div}'] = 'to jest div';
  3. $tablica['{$p}'] = 'to jest p';
  4.  
  5.  
  6. $html = file_get_contents('./tpl/main_index.html');
  7.  
  8.  
  9. foreach($tablica as $nazwa=>$wartosc)
  10. {
  11.  $html = str_replace($nazwa,$wartosc,$html);
  12. }
  13.  
  14. echo $html;
  15. ?>


plik main_index.html
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. <title>Untitled Document</title>
  5. </head>
  6. <body>
  7. <div style="border:1px solid red; padding:5px;">
  8. {$div}
  9. </div>
  10. <ul>
  11. <!-- test -->
  12. <li><p style="border:1px solid blue; padding:5px;">{$p}</p></li>
  13. <!-- /test -->
  14. </ul>
  15. </body>
  16. </html>


Starałem się jakoś dojść do tego jak podmieniać zakres od <!-- test --> do <!-- /test --> i wrzucić to w pętle by zrobić listing ale nie udało mi się. Jedyne do czego doszłem to jak zmienić cały zakres a mianowicie poprzez dodanie przed pętla takiego czegoś:
  1. <?php
  2. $html = preg_replace("/<!-- test -->.*?<!-- /test -->/si", '<hr />', $html);
  3. ?>


Czy ma ktoś może jakieś propozycje, porady etc... jak to ugryźć??

Ten post edytował Rudi1204 12.04.2009, 10:50:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 10:17